/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Monetario;

/**
 *
 * @author Yojugracu
 */


import java.io.File;

import java.util.Iterator;

import java.util.List;



import javax.servlet.ServletContext;

import javax.servlet.http.HttpServletRequest;



import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileItemFactory;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;



public class cargar {

String relativePath;
public String foto="";
public String firma="";


/** Comienza a procesar los datos del formulario

*

* @param request Request actual con los datos del formulario

* @param context Context del servlet/jsp

* @return String con el resultado del proceso

*/

public String uploadFile(HttpServletRequest request, ServletContext context) {
//if (request.getParameter("form") != null) {

    this.relativePath = context.getRealPath("/")+"temporales";
    this.parseRequest(request);

return "File Processed";

}

/** Parsea los campos del formulario para almacenarlos en una lista

*

* @param request Request con los datos del formulario

*/

private void parseRequest(HttpServletRequest request) {

    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);

try {
    List items = upload.parseRequest(request);
    this.seekFileFields(items);
} catch (FileUploadException e) {
    e.printStackTrace();
}

}



/** Recorre la lista de campos del formulario hasta encontrar alguno de tipo file

*

* @param items Lista de items/campos de formulario

*/

private void seekFileFields(List items) {
    Iterator iter = items.iterator();
    while (iter.hasNext()) {
        FileItem item = (FileItem) iter.next();
        if (!item.isFormField())
        this.processUploadedFile(item);
}

}



/** Procesa el archivo enviado desde el formulario y lo

* almacena en el servidor con el nombre original en la misma

* ubicacion en q se encuentra el jsp que utiliza esta clase

*

* @param item Item con los datos del archivo

*/

private void processUploadedFile(FileItem item) {

    Filename filename = new Filename(item.getName(), '\\', '.');
    String file = filename.filename() + "." + filename.extension();
    File uploadedFile = new File(this.relativePath, file);

try {

    item.write(uploadedFile);
if(foto.length()>1){
    this.firma=uploadedFile.getAbsolutePath();
    System.out.println("siii firma XD yeahhh "+firma);
    }
else{
    this.foto=uploadedFile.getAbsolutePath();
    System.out.println("siii foto XD yeahhh "+foto);
    }
} catch (Exception e) {

e.printStackTrace();

}

}



}